\begin{problem}{Range Variation Query}{rvq.in}{rvq.out}{2 секунды}
{64 мегабайта}

В начальный момент времени последовательность $a_n$ задана следующей формулой:
$a_n = n^2 \bmod 12345 + n^3 \bmod 23456$.

Требуется много раз отвечать на запросы следующего вида:
\begin{itemize}
\item найти разность между максимальным и минимальным значениями
среди элементов $a_i, a_{i+1}, \ldots, a_j$;
\item присвоить элементу $a_i$ значение $j$.
\end{itemize}

\InputFile
Первая строка входного файла содержит натуральное число $k$~--- количество запросов ($1 \leqslant k \leqslant 100\,000$).
Следующие $k$~строк содержат запросы, по~одному на~строке. Запрос номер~$i$ описывается
двумя целыми числами $x_i$, $y_i$.

Если $x_i > 0$, то~требуется найти разность между максимальным и~минимальным
значениями среди элементов $a_{x_i}, \ldots, a_{y_i}$. При этом $1 \leqslant x_i \leqslant y_i \leqslant 100\,000$.

Если $x_i < 0$, то~требуется присвоить элементу~$a_{|x_i|}$ значение~$y_i$.
В~этом случае $-100\,000 \le x_i \le -1$ и $|y_i| \le 100\,000$.

\OutputFile
Для каждого запроса первого типа в~выходной файл требуется вывести одну строку,
содержащую разность между максимальным и~минимальным значениями на~соответствующем
отрезке.

\Examples

\begin{example}
\exmp{7
1 3
2 4
-2 -100
1 5
8 9
-3 -101
2 3
}{34
68
250
234
1
}%
\end{example}

\end{problem}
